WebAssemblyã³ã³ããŒãã³ãã¢ãã«ã®ãªã³ãã³ã°ãããã³ã«ãæ¢æ±ã匷åã§ããŒã¿ãã«ãã»ãã¥ã¢ãªã¢ããªã±ãŒã·ã§ã³ã倿§ãªç°å¢ã§å®çŸãã驿°çãªã¢ãããŒãã
WebAssemblyã³ã³ããŒãã³ãã¢ãã«ã®ãªã³ãã³ã°ãããã³ã«ïŒã·ãŒã ã¬ã¹ãªã³ã³ããŒãã³ãééä¿¡ã®å®çŸ
ãœãããŠã§ã¢éçºã®çŸå Žã¯ãããé«ãããŒã¿ããªãã£ãã»ãã¥ãªãã£ãçžäºéçšæ§ãžã®ããŒãºã«çœåŒãããåžžã«é²åãç¶ããŠããŸããWebAssembly (Wasm) ã¯ãããŸããŸãªããã°ã©ãã³ã°èšèªããã³ã³ãã€ã«ãããã³ãŒããå®è¡ããããã®ãå®å šã§é«éããã€å¹ççãªå®è¡ç°å¢ãæäŸãããã®é²åã«ãããæ¥µããŠéèŠãªãã¯ãããžãŒãšããŠå°é ããŸãããWasmã¯åäžããã»ã¹å ã§ã®ã³ãŒãå®è¡ã«ãããŠãã®å®åã蚌æããŠããŸããããç°ãªãWasmã³ã³ããŒãã³ãéã®æŽç·Žãããéä¿¡ãå¯èœã«ããããšã¯ãäŸç¶ãšããŠå€§ããªèª²é¡ã§ãããããã«WebAssemblyã³ã³ããŒãã³ãã¢ãã«ã®ãªã³ãã³ã°ãããã³ã«ãç»å Žããã¢ãžã¥ãŒã«åãã忣ãããã¢ããªã±ãŒã·ã§ã³ã®æ§ç¯ãšãããã€æ¹æ³ã«é©åœããããããšçŽæãããŠããŸãã
ã¢ãžã¥ãŒã«åã®å€æãïŒãªãWasmã³ã³ããŒãã³ããéèŠãªã®ã
åŸæ¥ãWasmã¢ãžã¥ãŒã«ã¯ããã¶ãéé¢ããããµã³ãããã¯ã¹å ã§åäœããŸãããã¹ãç°å¢ïŒWebãã©ãŠã¶ããµãŒããŒãµã€ãã©ã³ã¿ã€ã ãªã©ïŒãšãã€ã³ããŒãããã³ãšã¯ã¹ããŒãããã颿°ãä»ããŠããåãããããšã¯ã§ããŸãããåãããã»ã¹å ã§2ã€ã®ç°ãªãWasmã¢ãžã¥ãŒã«éã§çŽæ¥éä¿¡ããããšã¯ç ©éã§ããããã°ãã°è€éãªã°ã«ãŒã³ãŒãããäžéäœãšããŠã®ãã¹ãç°å¢ãžã®äŸåãå¿ èŠã§ããããã®å¶éã¯ãç¬ç«ããã³ã³ããŒãã³ãããã«ãã£ã³ã°ãããã¯ã®ããã«éçºããããã€ãæ§æã§ãããçã«ã¢ãžã¥ãŒã«åãããWasmã¢ããªã±ãŒã·ã§ã³ã®éçºã劚ããŸãã
WebAssemblyã³ã³ããŒãã³ãã¢ãã«ã¯ãWasmã³ã³ããŒãã³ããå®çŸ©ããªã³ã¯ããããã®ãããå ç¢ã§æšæºåãããæ¹æ³ãå°å ¥ããããšã§ããã®åé¡ã«å¯ŸåŠããããšãç®æããŠããŸããããã¯ãåã ã®Wasmã³ãŒãã®æçããã³ã³ãã€ã«ãããå ã®èšèªã«äŸåãããäºããã©ã®ããã«çè§£ããããåãã§ãããã®èšèšå³ã®ãããªãã®ã§ãã
ã³ã³ããŒãã³ãã¢ãã«ã®äž»èŠæŠå¿µ
ãªã³ãã³ã°ãããã³ã«ã«å ¥ãåã«ãã³ã³ããŒãã³ãã¢ãã«ã®ããã€ãã®ã³ã¢æŠå¿µãçè§£ããããšãäžå¯æ¬ ã§ãã
- ã³ã³ããŒãã³ãïŒãã©ãããªWasmã¢ãžã¥ãŒã«ãšã¯ç°ãªããã³ã³ããŒãã³ãã¯æ§æã®åºæ¬åäœã§ãããããã¯ãWasmã³ãŒããšãã®ç¬èªã®å®çŸ©ãããã€ã³ã¿ãŒãã§ãŒã¹ãã«ãã»ã«åããŸãã
- ã€ã³ã¿ãŒãã§ãŒã¹ïŒã³ã³ããŒãã³ãã¯ãã€ã³ã¿ãŒãã§ãŒã¹ãä»ããŠãã®èœåãå ¬éãããã®èŠä»¶ãå®çŸ©ããŸãããããã®ã€ã³ã¿ãŒãã§ãŒã¹ã¯å¥çŽãšããŠæ©èœããã³ã³ããŒãã³ããæäŸãŸãã¯æ¶è²»ãã颿°ãåããªãœãŒã¹ãæå®ããŸããã€ã³ã¿ãŒãã§ãŒã¹ã¯èšèªã«äŸåãããéä¿¡ã®åœ¢ç¶ãèšè¿°ããŸãã
- ã¯ãŒã«ãïŒãã¯ãŒã«ããã¯ãã³ã³ããŒãã³ããã€ã³ããŒããŸãã¯ãšã¯ã¹ããŒãã§ããã€ã³ã¿ãŒãã§ãŒã¹ã®ã³ã¬ã¯ã·ã§ã³ã衚ããŸããããã«ãããã³ã³ããŒãã³ãéã®äŸåé¢ä¿ãæ§é åããŠç®¡çããæ¹æ³ãå¯èœã«ãªããŸãã
- åïŒã³ã³ããŒãã³ãã¢ãã«ã¯ãã³ã³ããŒãã³ãéã§æž¡ãããšãã§ãã颿°ã·ã°ããã£ãã¬ã³ãŒããããªã¢ã³ãããªã¹ãããã®ä»ã®è€éãªããŒã¿åãå®çŸ©ããããã®ãªãããªåã·ã¹ãã ãå°å ¥ããŸãã
ã€ã³ã¿ãŒãã§ãŒã¹ãšåã«å¯Ÿãããã®æ§é åãããã¢ãããŒãã¯ãäºæž¬å¯èœã§ä¿¡é Œæ§ã®é«ãéä¿¡ã®åºç€ãç¯ãããã¬ãŒã³ãªWasmã¢ãžã¥ãŒã«ã®ãã°ãã°å£ãããã颿°éåŒã³åºããè¶ ããŠããŸãã
ãªã³ãã³ã°ãããã³ã«ïŒã³ã³ããŒãã³ãéã®æ¶ãæ©
WebAssemblyã³ã³ããŒãã³ãã¢ãã«ã®ãªã³ãã³ã°ãããã³ã«ã¯ããããã®ç¬ç«ããŠå®çŸ©ãããã³ã³ããŒãã³ããå®è¡æã«æ¥ç¶ããéä¿¡ã§ããããã«ããã¡ã«ããºã ã§ããããã¯ãã³ã³ããŒãã³ãã®ã€ã³ããŒããããã€ã³ã¿ãŒãã§ãŒã¹ãå¥ã®ã³ã³ããŒãã³ãã®ãšã¯ã¹ããŒããããã€ã³ã¿ãŒãã§ãŒã¹ã«ãã£ãŠã©ã®ããã«æºãããããã®éãç¶ãã§ããããå®çŸ©ããŸãããã®ãããã³ã«ã¯ãåçãªãªã³ã¯ãšæ§æãå¯èœã«ããç§å¯ã®ãœãŒã¹ã§ãã
ãªã³ã¯ã®ä»çµã¿ïŒæŠå¿µçæŠèŠ
ãã®æ žå¿ã«ãããŠããªã³ã¯ããã»ã¹ã¯ãã€ã³ããŒã¿ãŒã®èŠä»¶ïŒã€ã³ããŒããããã€ã³ã¿ãŒãã§ãŒã¹ïŒãšãšã¯ã¹ããŒã¿ãŒã®æäŸïŒãšã¯ã¹ããŒããããã€ã³ã¿ãŒãã§ãŒã¹ïŒãäžèŽãããããšãå«ã¿ãŸãããã®äžèŽã¯ãããããã®ã€ã³ã¿ãŒãã§ãŒã¹å ã§å®çŸ©ãããåãšé¢æ°ã·ã°ããã£ã«åºã¥ããŠããŸãã
2ã€ã®ã³ã³ããŒãã³ããã³ã³ããŒãã³ãAãšã³ã³ããŒãã³ãBãèããŠã¿ãŸãããã
- ã³ã³ããŒãã³ãAã¯ããcalculatorããšããååã®ã€ã³ã¿ãŒãã§ãŒã¹ããšã¯ã¹ããŒããããadd(x: i32, y: i32) -> i32ãããã³ãsubtract(x: i32, y: i32) -> i32ãã®ãããªé¢æ°ãæäŸããŸãã
- ã³ã³ããŒãã³ãBã¯ããmath-opsããšããååã®ã€ã³ã¿ãŒãã§ãŒã¹ãã€ã³ããŒããããadd(a: i32, b: i32) -> i32ãããã³ãsubtract(a: i32, b: i32) -> i32ãã®é¢æ°ãèŠæ±ããŸãã
ãªã³ãã³ã°ãããã³ã«ã¯ããmath-opsãã®ã€ã³ããŒããã³ã³ããŒãã³ãBã«ããå Žåããã®ã€ã³ã¿ãŒãã§ãŒã¹å®çŸ©ãäºææ§ãããããšãæ¡ä»¶ã«ãã³ã³ããŒãã³ãAã®ãcalculatorãã®ãšã¯ã¹ããŒãã«ãã£ãŠæºããããšãã§ãããšèŠå®ããŠããŸãããªã³ã¯ããã»ã¹ã¯ãã³ã³ããŒãã³ãBããadd()ããåŒã³åºããšãã«ãå®éã«ã³ã³ããŒãã³ãAãæäŸãããadd()ã颿°ãåŒã³åºããŠããããšãä¿èšŒããŸãã
ãªã³ãã³ã°ãããã³ã«ã®äž»èŠãªåŽé¢
- ã€ã³ã¿ãŒãã§ãŒã¹ãããã³ã°ïŒãããã³ã«ã¯ãã€ã³ããŒãããã³ãšã¯ã¹ããŒããããã€ã³ã¿ãŒãã§ãŒã¹ãäžèŽãããããã®ã«ãŒã«ãå®çŸ©ããŸããããã«ã¯ãåäºææ§ã颿°åããã©ã¡ãŒã¿/æ»ãå€ã®åã®ãã§ãã¯ãå«ãŸããŸãã
- ã€ã³ã¹ã¿ã³ã¹äœæïŒã³ã³ããŒãã³ãããªã³ã¯ããããšããããã®ã³ã³ããŒãã³ãã®å®è¡æã€ã³ã¹ã¿ã³ã¹ãäœæãããŸãããªã³ãã³ã°ãããã³ã«ã¯ããããã®ã€ã³ã¹ã¿ã³ã¹ãã©ã®ããã«ã€ã³ã¹ã¿ã³ã¹åããããã®ã€ã³ããŒããä»ã®ãªã³ã¯ãããã³ã³ããŒãã³ãããã®ãšã¯ã¹ããŒãã«ã©ã®ããã«è§£æ±ºãããããã¬ã€ãããŸãã
- æ©èœã®åãæž¡ãïŒé¢æ°ã ãã§ãªãããªã³ãã³ã°ãããã³ã«ã¯ããªãœãŒã¹ãžã®ã¢ã¯ã»ã¹ãä»ã®ã³ã³ããŒãã³ãã€ã³ã¹ã¿ã³ã¹ãªã©ã®æ©èœã®åãæž¡ããä¿é²ããããšãã§ããè€éãªäŸåé¢ä¿ã°ã©ããå¯èœã«ããŸãã
- ãšã©ãŒåŠçïŒå ç¢ãªãªã³ãã³ã°ãããã³ã«ã¯ããªã³ã¯ããã»ã¹äžã®ãšã©ãŒïŒäŸïŒäºææ§ã®ãªãã€ã³ã¿ãŒãã§ãŒã¹ãäžè¶³ããŠããã€ã³ããŒãïŒãã©ã®ããã«åŠçãããå ±åãããããå®çŸ©ããå¿ èŠããããŸãã
WebAssemblyã³ã³ããŒãã³ãã¢ãã«ãªã³ãã³ã°ãããã³ã«ã®å©ç¹
Wasmã³ã³ããŒãã³ãã®æšæºåããããªã³ãã³ã°ãããã³ã«ã®æ¡çšã¯ãäžçäžã®éçºè ãšçµç¹ã«å€ãã®å©ç¹ããããããŸãã
1. ã¢ãžã¥ãŒã«åãšåå©çšæ§ã®åäž
éçºè ã¯ãå€§èŠæš¡ãªã¢ããªã±ãŒã·ã§ã³ãããå°ããç¬ç«ããã³ã³ããŒãã³ãã«åå²ã§ããŸãããããã®ã³ã³ããŒãã³ãã¯ãåå¥ã«éçºããã¹ãããããã€ã§ããŸãããªã³ãã³ã°ãããã³ã«ã¯ããããã®ã³ã³ããŒãã³ããç°¡åã«æ§æã§ããããšãä¿èšŒããããã©ã°ã¢ã³ããã¬ã€ãéçºãã©ãã€ã ãä¿é²ããŸããããã«ãããç°ãªããããžã§ã¯ããããŒã éã§ã®ã³ãŒãã®åå©çšæ§ãå€§å¹ ã«åäžããŸãã
ã°ããŒãã«ãªäŸïŒã°ããŒãã«ãªeã³ããŒã¹ãã©ãããã©ãŒã ãæ³åããŠã¿ãŠãã ãããããŸããŸãªå°åã®ããŸããŸãªããŒã ããã補åã«ã¿ãã°ãã³ã³ããŒãã³ãããã·ã§ããã³ã°ã«ãŒããã³ã³ããŒãã³ãããæ±ºæžã²ãŒããŠã§ã€ãã³ã³ããŒãã³ããªã©ã®åå¥ã®ã³ã³ããŒãã³ãã®éçºãæ åœããå¯èœæ§ããããŸãããããã®ã³ã³ããŒãã³ãã¯ãïŒäŸïŒããã©ãŒãã³ã¹ãéèŠãªéšåã«ã¯RustãUIããžãã¯ã«ã¯JavaScriptãªã©ïŒç°ãªãèšèªã§éçºãããWasmã³ã³ããŒãã³ãã¢ãã«ã䜿çšããŠã·ãŒã ã¬ã¹ã«ãªã³ã¯ãããããŒã ã®æåšå°ã奜ãèšèªã«é¢ä¿ãªããå®å šãªã¢ããªã±ãŒã·ã§ã³ã圢æã§ããŸãã
2. çã®ã¯ãã¹èšèªéçº
Wasmã®æããšããµã€ãã£ã³ã°ãªå¯èœæ§ã®1ã€ã¯ãåžžã«ä»»æã®èšèªããã®ã³ãŒããå®è¡ã§ããããšã§ãããã³ã³ããŒãã³ãã¢ãã«ãšãã®ãªã³ãã³ã°ãããã³ã«ã¯ãæšæºåãããéä¿¡ã¬ã€ã€ãŒãæäŸããããšã§ãããå¢å¹ ããŸããããã©ãŒãã³ã¹ã®é«ãæ°å€èšç®ãæäŸããRustã³ã³ããŒãã³ãããããŒã¿åæãåŠçããPythonã³ã³ããŒãã³ãããŸãã¯è€éãªã¢ã«ãŽãªãºã ã®ããã®C++ã³ã³ããŒãã³ãããããã¯ãŒã¯éä¿¡ã®ããã®Goã³ã³ããŒãã³ããšãä¿¡é Œæ§é«ããªã³ã¯ã§ããããã«ãªããŸããã
ã°ããŒãã«ãªäŸïŒç§åŠç ç©¶æ©é¢ã¯ãFortranãŸãã¯C++ã§æžãããã³ã¢ã·ãã¥ã¬ãŒã·ã§ã³ãšã³ãžã³ãPythonã§ã®ããŒã¿åŠçãã€ãã©ã€ã³ãJavaScriptã§ã®å¯èŠåããŒã«ãæã£ãŠãããããããŸãããã³ã³ããŒãã³ãã¢ãã«ã䜿çšãããšãããããWasmã³ã³ããŒãã³ããšããŠããã±ãŒãžåãããªã³ã¯ããŠãã°ããŒãã«ãªç ç©¶è éã®ååãä¿é²ãããä»»æã®ãã©ãŠã¶ãŸãã¯ãµãŒããŒããã¢ã¯ã»ã¹å¯èœãªçµ±äžãããã€ã³ã¿ã©ã¯ãã£ããªç ç©¶ã¢ããªã±ãŒã·ã§ã³ãäœæã§ããŸãã
3. ã»ãã¥ãªãã£ãšåé¢ã®æ¹å
WebAssemblyã®åºæã®ãµã³ãããã¯ã¹ã¯ã匷åãªã»ãã¥ãªãã£ä¿èšŒãæäŸããŸããã³ã³ããŒãã³ãã¢ãã«ã¯ãæç€ºçãªã€ã³ã¿ãŒãã§ãŒã¹ãå®çŸ©ããããšã§ãããæ¡åŒµããŸããããã¯ãã³ã³ããŒãã³ããæå³ãããã®ãå ¬éããæç€ºçã«å®£èšãããã®ã®ã¿ãæ¶è²»ããããšãæå³ããŸãããªã³ãã³ã°ãããã³ã«ã¯ããããã®å®£èšãããäŸåé¢ä¿ã匷å¶ããæ»æå¯Ÿè±¡é åãæžãããæå³ããªãå¯äœçšãé²ããŸããåã³ã³ããŒãã³ãã¯ãæç¢ºã«å®çŸ©ãããæš©éã»ããã§æäœã§ããŸãã
ã°ããŒãã«ãªäŸïŒã¯ã©ãŠããã€ãã£ãç°å¢ã§ã¯ããã€ã¯ããµãŒãã¹ã¯ãã»ãã¥ãªãã£ãšãªãœãŒã¹åé¢ã匷åããããã«ãWasmã³ã³ããŒãã³ããšããŠãããã€ãããããšããããããŸããéèãµãŒãã¹äŒç€Ÿã¯ãæ©å¯æ§ã®é«ããã©ã³ã¶ã¯ã·ã§ã³åŠçã³ã³ããŒãã³ããWasmã¢ãžã¥ãŒã«ãšããŠãããã€ããæç€ºçã«æ¿èªãããã³ã³ããŒãã³ããšã®ã¿éä¿¡ããäžèŠãªãã¹ãã·ã¹ãã ãªãœãŒã¹ãžã®ã¢ã¯ã»ã¹ããªãããšãä¿èšŒããŠã峿 Œãªã°ããŒãã«èŠå¶ã³ã³ãã©ã€ã¢ã³ã¹èŠä»¶ãæºããããšãã§ããŸãã
4. 倿§ãªã©ã³ã¿ã€ã éã§ã®ããŒã¿ããªãã£
Wasmã®ç®æšã¯åžžã«ãã©ãã§ãå®è¡ãã§ãããæšæºåããããªã³ã¯ãåããã³ã³ããŒãã³ãã¢ãã«ã¯ããããããã«åŒ·åããŸãããã®ãããã³ã«ã䜿çšããŠãªã³ã¯ãããã³ã³ããŒãã³ãã¯ãWebãã©ãŠã¶ããµãŒããŒãµã€ãã©ã³ã¿ã€ã ïŒNode.jsãDenoãªã©ïŒãçµã¿èŸŒã¿ã·ã¹ãã ãIoTããã€ã¹ãããã«ã¯ãããã¯ãã§ãŒã³ã¹ããŒãã³ã³ãã©ã¯ããã©ãããã©ãŒã ã®ãããªç¹æ®ãªããŒããŠã§ã¢ã§ãå®è¡ã§ããŸãã
ã°ããŒãã«ãªäŸïŒç£æ¥çšIoTã¢ããªã±ãŒã·ã§ã³ãéçºããäŒæ¥ã¯ãã»ã³ãµãŒããŒã¿ååŸïŒãšããžããã€ã¹ã§å®è¡ïŒãããŒã¿éèšãšåæïŒã¯ã©ãŠãç°å¢ã§å®è¡ïŒããŠãŒã¶ãŒã€ã³ã¿ãŒãã§ãŒã¹è¡šç€ºïŒWebãã©ãŠã¶ã§å®è¡ïŒã®ããã®ã³ã³ããŒãã³ããæã£ãŠãããããããŸããããªã³ãã³ã°ãããã³ã«ã¯ããããã®ã³ã³ããŒãã³ãããç°ãªãèšèªããã³ã³ãã€ã«ãããç°ãªãã¢ãŒããã¯ãã£ãã¿ãŒã²ããã«ããŠããå¯èœæ§ããã£ãŠããã°ããŒãã«ã«å±éãããçµ±äžãœãªã¥ãŒã·ã§ã³ã®äžéšãšããŠå¹æçã«éä¿¡ã§ããããšãä¿èšŒããŸãã
5. ãããã€ãšæŽæ°ã®ç°¡çŽ å
ã³ã³ããŒãã³ãã¯å®çŸ©ãããã€ã³ã¿ãŒãã§ãŒã¹ãæã€ç¬ç«ãããŠãããã§ãããããåäžã®ã³ã³ããŒãã³ãã®æŽæ°ã¯ã¯ããã«ç°¡åã«ãªããŸããã³ã³ããŒãã³ãã®ãšã¯ã¹ããŒããããã€ã³ã¿ãŒãã§ãŒã¹ããã³ã³ã·ã¥ãŒããŒãæåŸ ãããã®ãšäºææ§ãããéããã¢ããªã±ãŒã·ã§ã³å šäœãåã³ã³ãã€ã«ãŸãã¯åãããã€ããããšãªããã³ã³ããŒãã³ãã®æ°ããããŒãžã§ã³ããããã€ã§ããŸããããã«ãããCI/CDãã€ãã©ã€ã³ãåçåããããããã€ãªã¹ã¯ã軜æžãããŸãã
ã°ããŒãã«ãªäŸïŒè€éãªããžãã¹ã¢ããªã±ãŒã·ã§ã³ã¹ã€ãŒããæäŸããã°ããŒãã«SaaSãããã€ããŒã¯ãåã ã®æ©èœãŸãã¯ã¢ãžã¥ãŒã«ãWasmã³ã³ããŒãã³ããšããŠæŽæ°ã§ããŸããããšãã°ããã€ã³ããªãžã§ã³ãã¬ã³ã¡ã³ããŒã·ã§ã³ãæ©èœã匷åããæ°ããæ©æ¢°åŠç¿ã¢ãã«ã¯ãæ¢åã®ã¢ããªã±ãŒã·ã§ã³ã«ãªã³ã¯ãããæ°ããWasmã³ã³ããŒãã³ããšããŠãããã€ã§ããä»ã®ãµãŒãã¹ãäžæããããšãªããè¿ éãªã€ãã¬ãŒã·ã§ã³ãšäŸ¡å€ã®æäŸãäžçäžã®ãŠãŒã¶ãŒã«å¯èœã«ããŸãã
å®éã®åœ±é¿ãšãŠãŒã¹ã±ãŒã¹
WebAssemblyã³ã³ããŒãã³ãã¢ãã«ãªã³ãã³ã°ãããã³ã«ã¯ãçè«çãªé²æ©ã ãã§ãªããããŸããŸãªãã¡ã€ã³ã«å ·äœçãªåœ±é¿ãäžããŸãã
ãµãŒããŒãµã€ããšã¯ã©ãŠãã³ã³ãã¥ãŒãã£ã³ã°
ãµãŒããŒã§ã¯ãWasmã¯ãã€ã¯ããµãŒãã¹ãå®è¡ããããã®ã³ã³ããã®è»œéã§å®å šãªä»£æ¿ææ®µãšããŠæ³šç®ãéããŠããŸããã³ã³ããŒãã³ãã¢ãã«ã¯ãåãµãŒãã¹ãWell-definedã€ã³ã¿ãŒãã§ãŒã¹ãä»ããŠä»ã®ãµãŒãã¹ãšéä¿¡ããWasmã³ã³ããŒãã³ãã§ããè€éãªãã€ã¯ããµãŒãã¹ã¢ãŒããã¯ãã£ã®æ§ç¯ãå¯èœã«ããŸããããã«ããããããããªã³ãã®åæžãèµ·åæéã®ççž®ãåŸæ¥ã®ã³ã³ããåããããããã€ã¡ã³ããšæ¯èŒããŠã»ãã¥ãªãã£ã®åäžãå®çŸã§ããŸãã
ãŠãŒã¹ã±ãŒã¹ïŒWasmã³ã³ããŒãã³ããšããŠå®è£ ããããµãŒããŒã¬ã¹é¢æ°ãå颿°ã¯ã³ã³ããŒãã³ãã§ãããå¿ èŠã«å¿ããŠå ±æã©ã€ãã©ãªãä»ã®ãµãŒãã¹ã«ãªã³ã¯ããŠãå¹ççã§å®å šãªãµãŒããŒã¬ã¹ãã©ãããã©ãŒã ãäœæã§ããŸãã
ãšããžã³ã³ãã¥ãŒãã£ã³ã°ãšIoT
ãšããžããã€ã¹ã¯ããªãœãŒã¹ãéãããŠãããããŒããŠã§ã¢ã倿§ã§ããããšããããããŸããWasmã®å¹çæ§ãšããŒã¿ããªãã£ã¯ããšããžãããã€ã¡ã³ãã«æé©ã§ããã³ã³ããŒãã³ãã¢ãã«ã¯ããããã®ããã€ã¹äžã®ã¢ããªã±ãŒã·ã§ã³ããããå°ããç¹æ®åãããã³ã³ããŒãã³ãã§æ§æã§ããããã«ãããã¡ãŒã ãŠã§ã¢å šäœãåãããã€ããããšãªããæŽæ°ãšã«ã¹ã¿ãã€ãºãå¯èœã«ããŸããããã¯ãããŸããŸãªå°ççãªå Žæã«ããããã€ã¹ã®ããªãŒãã管çããããã«éèŠã§ãã
ãŠãŒã¹ã±ãŒã¹ïŒã»ã³ãµãŒããŒã¿åŠçãå¶åŸ¡ããžãã¯ãéä¿¡ã¢ãžã¥ãŒã«ããã¹ãŠåå¥ã®Wasmã³ã³ããŒãã³ãã§ãããå·¥å Žã®ããã¢ããã€ã¹ã§ç¬ç«ããŠæŽæ°ã§ããç£æ¥ãªãŒãã¡ãŒã·ã§ã³ã·ã¹ãã ã
ãããã¯ãã§ãŒã³ãšã¹ããŒãã³ã³ãã©ã¯ã
Wasmã¯ããã®ã»ãã¥ãªãã£ãšäºæž¬å¯èœæ§ã«ãããã¹ããŒãã³ã³ãã©ã¯ãå®è¡ã®äžè¬çãªéžæè¢ãšãªã£ãŠããŸããã³ã³ããŒãã³ãã¢ãã«ã¯ãããã¢ãžã¥ãŒã«åãããã¹ããŒãã³ã³ãã©ã¯ãéçºãå¯èœã«ããåå©çšå¯èœãªã¹ããŒãã³ã³ãã©ã¯ãã©ã€ãã©ãªãŸãã¯ãµãŒãã¹ãäœæããŠãè€éãªåæ£åã¢ããªã±ãŒã·ã§ã³ïŒdAppïŒãæ§ç¯ããããã«ãªã³ã¯ã§ããŸãã
ãŠãŒã¹ã±ãŒã¹ïŒã¬ã³ãã£ã³ã°ããããŒã€ã³ã°ãã¹ããŒãã³ã°æ©èœãªã©ãåŠçããããŸããŸãªã³ã³ããŒãã³ããæã€åæ£åéèïŒDeFiïŒãããã³ã«ããããããç¬ç«ããWasmã³ã³ãã©ã¯ãã§ãããä»ã®ã³ã³ãã©ã¯ããšå®å šã«ãªã³ã¯ããŸãã
Webã¢ããªã±ãŒã·ã§ã³ãšãã€ããªããã¢ãŒããã¯ãã£
Wasmã®ã«ãŒãã¯Webã«ãããŸãããã³ã³ããŒãã³ãã¢ãã«ã¯åŸæ¥ã®ã·ã³ã°ã«ããŒãžã¢ããªã±ãŒã·ã§ã³ãè¶ ããŠãã®æ©èœã匷åããŸããããã«ãããç¬ç«ããèšèªã«äŸåããªãã¢ãžã¥ãŒã«ã§æ§æãããæŽç·ŽãããWebã¢ããªã±ãŒã·ã§ã³ã®äœæãå¯èœã«ãªããŸããããã«ãã¢ããªã±ãŒã·ã§ã³ã®äžéšããã©ãŠã¶ã§Wasmã³ã³ããŒãã³ããšããŠå®è¡ãããä»ã®éšåããµãŒããŒã§Wasmã³ã³ããŒãã³ããšããŠå®è¡ãããã·ãŒã ã¬ã¹ã«éä¿¡ãããã€ããªããã¢ãŒããã¯ãã£ãä¿é²ããŸãã
ãŠãŒã¹ã±ãŒã¹ïŒããŒã¿ååŸãšåŠçããµãŒããŒãµã€ãWasmã³ã³ããŒãã³ãã§ãããã¬ã³ããªã³ã°ãšã€ã³ã¿ã©ã¯ãã£ããã£ãã¯ã©ã€ã¢ã³ããµã€ãWasmã³ã³ããŒãã³ãã«ãã£ãŠåŠçãããäž¡æ¹ããªã³ãã³ã°ãããã³ã«ãä»ããŠéä¿¡ããè€éãªããŒã¿èŠèŠåããã·ã¥ããŒãã
課é¡ãšå°æ¥å±æ
WebAssemblyã³ã³ããŒãã³ãã¢ãã«ãšãã®ãªã³ãã³ã°ãããã³ã«ã¯éåžžã«ææã§ãããäŸç¶ãšããŠé²è¡äžã®éçºãšèª²é¡ããããŸãã
- ããŒã«ãšãšã³ã·ã¹ãã ã®æç床ïŒã³ã³ãã€ã©ããã«ãã·ã¹ãã ããããã°ããŒã«ãå«ãWasmã³ã³ããŒãã³ãåšèŸºã®ããŒã«ã¯ããŸã é²åäžã§ããæçãããšã³ã·ã¹ãã ã¯ãåºç¯ãªæ¡çšã«äžå¯æ¬ ã§ãã
- æšæºåã®åãçµã¿ïŒã³ã³ããŒãã³ãã¢ãã«ã¯è€éãªä»æ§ã§ãããé²è¡äžã®æšæºåã®åãçµã¿ã¯ãããŸããŸãªã©ã³ã¿ã€ã ãšèšèªéã§ã®äžè²«ããå®è£ ãä¿èšŒããããã«äžå¯æ¬ ã§ãã
- ããã©ãŒãã³ã¹ã®èæ ®äºé ïŒWasmã¯é«éã§ãããç¹ã«è€éãªã€ã³ã¿ãŒãã§ãŒã¹å¢çãè¶ããã³ã³ããŒãã³ãééä¿¡ã«é¢é£ãããªãŒããŒãããã¯ãæ éã«ç®¡çããã³æé©åããå¿ èŠããããŸãã
- éçºè æè²ïŒã³ã³ããŒãã³ããã€ã³ã¿ãŒãã§ãŒã¹ãã¯ãŒã«ãã®æŠå¿µãçè§£ããã«ã¯ãéçºè ããœãããŠã§ã¢ã¢ãŒããã¯ãã£ãèããæ¹æ³ã®ã·ãããå¿ èŠã§ããå æ¬çãªæè²ãªãœãŒã¹ãéèŠã«ãªããŸãã
ãããã®èª²é¡ã«ãããããããè»éã¯æç¢ºã§ããWebAssemblyã³ã³ããŒãã³ãã¢ãã«ãªã³ãã³ã°ãããã³ã«ã¯ãWasmãå®å šã§ã¢ãžã¥ãŒã«åãããçžäºéçšå¯èœãªãœãããŠã§ã¢ãæ§ç¯ããããã®çã«éåšãããã©ãããã©ãŒã ã«ããããã®æ ¹æ¬çãªäžæ©ã衚ããŠããŸãããã¯ãããžãŒãæçããã«ã€ããŠãã³ã³ããŒãã³ãééä¿¡ã®åãæŽ»çšããäžçäžã®ãœãããŠã§ã¢éçºã«ãããå¯èœæ§ã®å¢çãæŒãåºãã驿°çãªã¢ããªã±ãŒã·ã§ã³ã®ççºçãªå¢å ãæåŸ ã§ããŸãã
çµè«
WebAssemblyã³ã³ããŒãã³ãã¢ãã«ãªã³ãã³ã°ãããã³ã«ã¯ãã³ã³ããŒãã³ãééä¿¡ã®ããã®ã²ãŒã ãã§ã³ãžã£ãŒã§ããWasmãåãªãåäžã¢ãžã¥ãŒã«ã®ãã€ãã³ãŒããã©ãŒããããããã¢ãžã¥ãŒã«åãããèšèªã«äŸåããªãã¢ããªã±ãŒã·ã§ã³ãæ§æããããã®åŒ·åãªã·ã¹ãã ãžãšé²åãããŸããæç¢ºãªã€ã³ã¿ãŒãã§ãŒã¹ãšæšæºåããããªã³ãã³ã°ã¡ã«ããºã ã確ç«ããããšã«ãããåäŸã®ãªãã¬ãã«ã®åå©çšæ§ãã»ãã¥ãªãã£ãããŒã¿ããªãã£ãè§£ãæŸã¡ãŸãããã®ãã¯ãããžãŒãæçãããšã³ã·ã¹ãã ãæé·ããã«ã€ããŠãWasmã³ã³ããŒãã³ããæ¬¡äžä»£ãœãããŠã§ã¢ã®ãã«ãã£ã³ã°ãããã¯ãšãªããäžçäžã®éçºè ããããŸã§ä»¥äžã«å¹æçã«ååããŠé©æ°ã§ããããã«ãªãããšãæåŸ ãããŸãã